package cfca.paperless.client.servlet._4_manager._4_04_AutoUploadTemplateInfo;

import java.io.File;
import java.io.FileInputStream;

import org.apache.commons.io.FileUtils;

import cfca.paperless.client.servlet.PaperlessConfig;
import cfca.paperless.client.servlet.PaperlessManagerClient;
import cfca.paperless.client.util.GUID;
import cfca.paperless.client.util.IoUtil;
import cfca.paperless.client.util.StringUtil;

/**
 * @Description 2.4 自动化上传模板接口，使用示例。
 * @Author dell
 * @Date 2016-5-13
 * @CodeReviewer TODO
 */
public class AutoUploadTemplateInfoTest01 {

    public static void main(String[] args) throws Exception {
        try {
            PaperlessManagerClient clientBean = new PaperlessManagerClient(PaperlessConfig.managerUrl, 10000, 60000);// 无纸化管理接口的访问URL

            
            //待计算hash的pdf
            String pdfFilePath = "./TestData/tmp.pdf";
            
            String pdfSuffix = IoUtil.getFileNameSuffix(pdfFilePath);
            if(!PaperlessConfig.PDF_FILE_SUFFIX.equals(pdfSuffix)){
                throw new Exception("所选文件不是pdf文件");
            }
            byte[] template = FileUtils.readFileToByteArray(new File(pdfFilePath));
            
            /*String htmlFilePahtString ="D:/TestData/tmp.html";
            String htmlSuffix = IoUtil.getFileNameSuffix(htmlFilePahtString);
            if(!PaperlessConfig.HTML_FILE_SUFFIX.equals(htmlSuffix)){
                throw new Exception("所选文件不是html文件");
            } */
            
            /*String xmlFilePahtString ="D:/TestData/tmp.xml";
            String xmlSuffix = IoUtil.getFileNameSuffix(xmlFilePahtString);
            if(!PaperlessConfig.XML_FILE_SUFFIX.equals(xmlSuffix)){
                throw new Exception("所选文件不是xml文件");
            }*/
            
            /*String ftlFilePahtString ="D:/TestData/tmp.ftl";
            String ftlSuffix = IoUtil.getFileNameSuffix(ftlFilePahtString);
            if(!PaperlessConfig.FTL_FILE_SUFFIX.equals(ftlSuffix)){
                throw new Exception("所选文件不是xml文件");
            }*/
            
          

            String templateCode = GUID.generateId();
            System.out.println(templateCode);
            
            String templateStrategyXml = "<TemplateInfo>" 
                    + "<TemplateCode>" + templateCode + "</TemplateCode>" // 模板号
                    + "<TemplateName>" + "模板-现金支取" + "</TemplateName>" // 模板名称
                    + "<TemplateVersion>" + "1.0" + "</TemplateVersion>" // 版本号
                    + "</TemplateInfo>";

            // 操作类型，1：增加，3：修改
            String operationType = "1";
            
            // 操作员编码或者机构编码
            String operatorCode = PaperlessConfig.operatorCode;

            // 取得转换后的PDF文件数据
            String result = clientBean.autoUploadTemplateInfo(template, templateStrategyXml, operationType, operatorCode);

            String code = StringUtil.getNodeText(result, "Code");

            if ("200".equals(code)) {
                System.out.println("OK:autoUploadTemplateInfo");
                System.out.println(result);
            } else {
                // 处理结果为异常，打印出错误码和错误信息
                System.out.println("NG:autoUploadTemplateInfo");
                System.out.println(result);
            }

        } catch (Exception e) {
            e.printStackTrace();
        }
    }

}
